﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace QLNSClient
{
    public partial class Frm_PCKN : DevExpress.XtraEditors.XtraForm
    {
        QLNSServiceReference.QLNSServiceClient sv = new QLNSServiceReference.QLNSServiceClient();
        
        public Frm_PCKN()
        {
            InitializeComponent();
        }


        public void LoadData()
        {
            btn_Luu.Enabled = false;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;
            btn_Huy.Enabled = false;

            txt_MaPCKN.Enabled = false;
            txt_TenPCKN.Enabled = false;
            txt_HeSoPCKN.Enabled = false;
            lke_LPCKN.Enabled = false;
            lke_loaiDV.Enabled = false;

            gv_dsPCKN.DataSource = sv.getPCKN();
            lke_LPCKN.Properties.DataSource = sv.getLPCKN();
            lke_loaiDV.Properties.DataSource = sv.getLoaiDV();
            gridView1.Columns[0].Caption = "Mã phụ cấp KN";
            gridView1.Columns[1].Caption = "Tên phụ cấp KN";
            gridView1.Columns[2].Caption = "Hệ số phụ cấp KN";
            gridView1.Columns[3].Caption = "Loại phụ cấp KN";
            gridView1.Columns[4].Caption = "Loại đơn vị ";
        }

        private void Frm_PCKN_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void btn_Them_Click(object sender, EventArgs e)
        {
            btn_Luu.Enabled = true;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;
            btn_Huy.Enabled = true;

            txt_MaPCKN.Enabled = false;
            txt_TenPCKN.Enabled = true;
            txt_HeSoPCKN.Enabled = true;
            lke_LPCKN.Enabled = true;
            lke_loaiDV.Enabled = true;

            txt_TenPCKN.Text = "";
            txt_HeSoPCKN.Text = "";
            lke_LPCKN.EditValue = null;
            lke_loaiDV.EditValue = null;
            

            List<QLNSServiceReference.PHUCAP_KIEMNHIEM> listLastID = new List<QLNSServiceReference.PHUCAP_KIEMNHIEM>(sv.getLastPCKN());
            int lastID = listLastID[0].Ma_PCKN;
            txt_MaPCKN.Text = (lastID + 1).ToString();
        }

        private void btn_Luu_Click(object sender, EventArgs e)
        {
            btn_Huy.Enabled = false;
            btn_Them.Enabled = true;

            string tempMaPCKN = txt_MaPCKN.Text;
            string tempTenPCKN = txt_TenPCKN.Text;
            string tempHSPCKN;
            if (txt_HeSoPCKN.Text == "")
            {
                tempHSPCKN = null;
            }
            else
            {
                tempHSPCKN = txt_HeSoPCKN.Text;
            }
            string tempLPCKN;
            if (lke_LPCKN.EditValue != null)
            {
                tempLPCKN = lke_LPCKN.EditValue.ToString();
            }
            else
            {
                tempLPCKN=null;
            }

            string tempMaLoaiDV;
            if (lke_loaiDV.EditValue != null)
            {
                tempMaLoaiDV = lke_loaiDV.EditValue.ToString();
            }
            else
            {
                tempMaLoaiDV = null;
            }

            QLNSServiceReference.PHUCAP_KIEMNHIEM pckn = new QLNSServiceReference.PHUCAP_KIEMNHIEM();
            pckn.Ma_PCKN = Int32.Parse(tempMaPCKN);
            pckn.TenPCKN = tempTenPCKN;
            if (tempHSPCKN == null)
            {
                pckn.HeSoPCKN = 1;
            }
            else
            {
                pckn.HeSoPCKN = float.Parse(tempHSPCKN);
            }
            if (tempLPCKN == null)
            {
                pckn.Ma_LoaiPCKN = 1;
            }
            else
            {
                pckn.Ma_LoaiPCKN = Int32.Parse(tempLPCKN);
            }

            if (tempMaLoaiDV == null)
            {
                pckn.Ma_Loai_DV = "DVT";
            }
            else
            {
                pckn.Ma_Loai_DV = tempMaLoaiDV;
            }

            if (demsua == 1)
            {
                DialogResult dr = MessageBox.Show("Bạn có chắc muốn cập nhật lại thông tin?!", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                if (dr == DialogResult.OK)
                {
                    sv.updatepcKN(pckn);
                    demsua = 0;
                    LoadData();
                    MessageBox.Show("Cập nhật thông tin phụ cấp kiêm nhiệm mã '"+txt_MaPCKN.Text+"' thành công!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                
                int kq = sv.addPCKN(pckn);
                if (kq != -1)
                {
                    LoadData();
                    MessageBox.Show("Thêm phụ cấp kiêm nhiệm mã '"+txt_MaPCKN.Text+"' thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Loại chức vụ kiêm nhiệm đã tồn tại! Vui lòng xem lại!","Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }

        private void btn_Huy_Click(object sender, EventArgs e)
        {
            demsua = 0;
            
            btn_Luu.Enabled = false;
            btn_Huy.Enabled = false;
            btn_Them.Enabled = true;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;
        }

        int demsua = 0;
        private void btn_Sua_Click(object sender, EventArgs e)
        {
            demsua = 1;

            btn_Luu.Enabled = true;
            btn_Them.Enabled = false;
            btn_Huy.Enabled = true;
            btn_Sua.Enabled = false;

            txt_TenPCKN.Enabled = true;
            txt_HeSoPCKN.Enabled = true;
            lke_LPCKN.Enabled = true;
            lke_loaiDV.Enabled = true;
        }

        private void btn_Xoa_Click(object sender, EventArgs e)
        {
            btn_Them.Enabled = true;
            btn_Luu.Enabled = false;
        }

        private void gv_dsPCKN_Click(object sender, EventArgs e)
        {
            btn_Luu.Enabled = false;
            btn_Xoa.Enabled = true;
            btn_Sua.Enabled = true;
            btn_Huy.Enabled = false;
            btn_Them.Enabled = true;

            txt_MaPCKN.Enabled = false;
            txt_TenPCKN.Enabled = false;
            txt_HeSoPCKN.Enabled = false;
            lke_LPCKN.Enabled = false;
            lke_loaiDV.Enabled = false;
            try
            {
                txt_MaPCKN.Text = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[0]);
                txt_TenPCKN.Text = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[1]);
                txt_HeSoPCKN.Text = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[2]);
                lke_LPCKN.EditValue = Int32.Parse(gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[3]));
                lke_loaiDV.EditValue = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[4]);
            }
            catch { }
        }

        private void btn_ThemLoaiPCKN_Click(object sender, EventArgs e)
        {
            Frm_LoaiPCKN frmLoaiPCKN = new Frm_LoaiPCKN();
            frmLoaiPCKN.ShowDialog();
            lke_LPCKN.Properties.DataSource = sv.getLPCKN();
        }

        private void btn_ThemLoaiDV_Click(object sender, EventArgs e)
        {
            Frm_LoaiDV frmThemLoaiDV = new Frm_LoaiDV();
            frmThemLoaiDV.ShowDialog();
            lke_loaiDV.Properties.DataSource = sv.getLoaiDV();
        }
    }
}